const syb = Symbol();

const obj = {
    [syb]: 1,
    a: 2,
    b: 3
}

/* 
for...in 循环主要用于遍历一个对象的所有可枚举的字符串键（包括原型链上的键）
*/
for (const prop in obj) {
    console.log(prop)
}

/* 
 Object.keys() 与 for...in 最根本、最重要的区别。Object.keys() 不会向上遍历原型链。
*/
console.log(Object.keys(obj))
/* 
它和 Object.keys() 一样，只关心对象自身的属性，而忽略原型链。区别：可遍历不可枚举性属性
*/
console.log(Object.getOwnPropertyNames(obj))
//得到的是一个符号属性的数组
const sybs = Object.getOwnPropertySymbols(obj);
console.log(sybs, sybs[0] === syb)
